package com.microframework.base.core.util;

import java.util.Collection;
import java.util.Map;

/**
 * 字符串工具类
 */
@SuppressWarnings("deprecation")
public class StringUtil extends org.apache.commons.lang3.StringUtils {
    
    /**
     * 判断字符串是否为空或null
     */
    public static boolean isEmpty(Object str) {
        return str == null || "".equals(str);
    }
    
    /**
     * 判断一个集合是否为空
     */
    public static boolean isEmpty(Collection<?> coll) {
        return coll == null || coll.isEmpty();
    }
    
    /**
     * 判断一个Map是否为空
     */
    public static boolean isEmpty(Map<?, ?> map) {
        return map == null || map.isEmpty();
    }
    
    /**
     * 判断对象是否为NotNull
     */
    public static boolean isNotNull(Object object) {
        return object != null;
    }
    
    /**
     * 判断字符串是否不为空且不为null
     */
    public static boolean isNotEmpty(String str) {
        return !isEmpty(str);
    }
    
    /**
     * 判断字符串是否不为空且长度大于0
     */
    public static boolean isNotBlank(String str) {
        return !isBlank(str);
    }
    
    /**
     * 截取字符串
     *
     * @param str 字符串
     * @param start 开始
     * @param end 结束
     * @return 结果
     */
    public static String substring(final String str, int start, int end) {
        if (str == null) {
            return "";
        }
        
        if (end < 0) {
            end = str.length() + end;
        }
        if (start < 0) {
            start = str.length() + start;
        }
        
        if (end > str.length()) {
            end = str.length();
        }
        
        if (start > end) {
            return "";
        }
        
        if (start < 0) {
            start = 0;
        }
        
        if (end < 0) {
            end = 0;
        }
        
        return str.substring(start, end);
    }
} 